# R 语言线性回归

# 方程表达式 y = ax + b

# y 响应变量
# x 预测变量
# a 和 b 均为常数

# 建立线性回归的步骤
# 1 进行收集高度和重量的观测值的样本实验
# 2 使用R 语言中的 lm() 函数创建关系模型
# 3 从创建模型中找到系数 并使用这些创建数学方程
# 4 获取关系模型的摘要以了解预测中的平方差 也称为残差
# 5 为了预测新人的体重 使用R语言predict() 函数

# lm(formula,data)
# formula 公式表示x和y之间的关系符号
# 数据是应用公式的向量

# 创建关系模型并获取系数
x <- c(151, 174, 138, 186, 128, 136, 179, 163, 152, 131)
y <- c(63, 81, 56, 91, 47, 57, 76, 72, 62, 48)

relation <- lm(y~x);
print( relation )

# 获取相关摘要
print( summary( relation ))

# 回归方程 : y = 0.67461x - 38.45509
# * R_squred ~ 1 回归效果越明显

# 线性回归中的predict( object,newdata)函数
# object 已创建的回归对象
# newdata 新增向量

a <- data.frame(x=170);
result <- predict(relation,a);
print("*-*-*-*-predict result-*-*-*-*")
print(result)

# 以图形方式可视化回归
png(file="linearegression.png");

# 作图
plot(y,x,col="blue",main="Height && Weight Regression",
     abline(lm(x~y)),cex=1.3,pch=16,xlab="Weight in kg", ylab="Height in cm");
dev.off()
